//All four rows (without Event Listeners ) created and saved in TT_GUI7.java
//TT_GUI9.java: Draw GUI of Page1 and initialises the CBoxes from database tables.
//TT_GUI10.java: TT_GUI9.java + unsuccessful operations in database + working in cboxes
//TT_GUI11.java: prev + successful operations in database + working in cboxes + consistency assured
// + tf an south for conformation msgs replaced by button+ addTextfieldsToMyInnerPanel() replaced by its definition.
//TT_GUI12.java: fully working but isolated
//TT_GUI13.java: Final Page 1: prev+ func for the page to view page1 and hide page2.
//TT_GUI14.java: prev + check on buttons implemented.
//TT_GUI15.java: prev + column option in CBoxOptions
import java.sql.*;
import java.util.*;
import java.io.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class TT_GUI{
public static void main(String[] args){
//myFrame frame;
EventQueue.invokeLater(new Runnable()
{
public void run(){
myFrame frame=new myFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
});
}
}
class myFrame extends JFrame{
public static String[] initialOptions( String tname , String cname)
{
int noOfRows=0;
qry=new String("select count(*) from "+tname);//Execute queries and/or updates
String[] CBoxOptions = null;
try
{
rset=stmt.executeQuery(qry);
while(rset.next())
{
noOfRows = rset.getInt(1);
}
CBoxOptions = new String[noOfRows+1];
qry=new String("select "+cname+" from "+tname);//Execute queries and/or updates
rset=stmt.executeQuery(qry);
CBoxOptions[0] = "-Select-";
for(int count=1; rset.next(); count++)
{
CBoxOptions[count] = rset.getString(1);
}
}
catch(Exception e)
{
System.out.println("2.)Error in InitialOptions "+e.toString());
}
return (CBoxOptions);
}
myFrame(){
setTitle("Administrator Screen");
setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
setResizable(false);
page1rowTypeA.Page1frame=this;
JdbcConnection myCon = new JdbcConnection();
try
{
Connection con = myCon.conn();//Get a Connection object
stmt = con.createStatement();//Get a Statement object
}
catch(SQLException e)
{
System.out.println("1.)Error in con or stmt "+e.toString());
}
Scanner in = new Scanner(System.in);
mainPanel = new JPanel();
mainPanel.setLayout(new GridLayout(6,1));
page1rowTypeA Trow = new page1rowTypeA(mainPanel, "Batch", myFrame.initialOptions("batch", "id"), 25);
page1rowTypeA Crow = new page1rowTypeA(mainPanel, "Course", myFrame.initialOptions("course", "id"), 60);
page1rowTypeA Grow = new page1rowTypeA(mainPanel, "Room", myFrame.initialOptions("room", "id"), 95);
page1rowTypeA Rrow = new page1rowTypeA(mainPanel, "Teacher", myFrame.initialOptions("teacher", "id"), 130);
mainPanel.add(page1rowTypeA.btnGo);
mainPanel.add(page1rowTypeA.nextPanel);
add(mainPanel, BorderLayout.CENTER);//adds mainPanel to the frame
add(page1rowTypeA.btn_south, BorderLayout.SOUTH);
add(page1rowTypeA.btnHead, BorderLayout.NORTH);
//pack();
}
public static boolean insert(String itemToInsert, String tName)
{
qry = ("Insert into "+tName+"(id) values('"+itemToInsert+"')");
try{
stmt.executeUpdate(qry);
return (true);
}
catch(SQLException e)
{
System.out.println("Error in static insert() "+e.toString());
return (false);
}
}
public static boolean delete(String itemToDelete, String tName)
{
qry = ("delete from "+tName+" where id = '"+itemToDelete+"'");
try
{
stmt.executeUpdate(qry);
return (true);
}
catch(SQLException e)
{
System.out.println("Error in static delete() "+e.toString());
return (false);
}
}
public static boolean update(String oldItem, String newItem, String tName)
{
qry = ("Update "+tName+" set id = '"+newItem+"' where id = '"+oldItem+"'");
try
{
stmt.executeUpdate(qry);
return (true);
}
catch(SQLException e)
{
System.out.println("Error in static update() "+e.toString());
return (false);
}
}
JPanel mainPanel;
private static final int DEFAULT_WIDTH = 600;
private static final int DEFAULT_HEIGHT = 400;
static Statement stmt;
static ResultSet rset; // = stmt.executeQuery("select max(studentid) from student");
static String qry;
}
class page1rowTypeA implements ActionListener{
page1rowTypeA(JPanel myPanel, String tName,String[] CBoxOptions, int posY){
this.tName = tName;
JLabel myLabel = new JLabel(tName);
myCBox=new JComboBox(CBoxOptions);
tf1 = new JTextField("Insert "+tName+":");
btnInsert = new JButton("Insert");//Insert
btnUpdate = new JButton("Update");//Update
btnDelete = new JButton("Delete");//Delete
btnInsert.addActionListener(this);
btnUpdate.addActionListener(this);
btnDelete.addActionListener(this);
myInnerPanel.add(tf1);//add tf1 to myInnerPanel
myInnerPanel.add(btnInsert);//add btn to myInnerPanel
myInnerPanel.add(btnUpdate);//add btn to myInnerPanel
myInnerPanel.add(btnDelete);//add btn to myInnerPanel
JPanel OPanel = new JPanel();
OPanel.add(myLabel);// myLabel.setBounds(25, posY, 70, 30);//add faceLabel to OPanel
OPanel.add(myCBox); //myCBox.setBounds(100, posY, 70, 30);//add faceCBox to OPanel
OPanel.add(myInnerPanel);// myInnerPanel.setBounds(175, posY, 70, 30);//add inner panel to OPanel
myPanel.add(OPanel);//add OPanel to myPanel
OPanel.setBounds(25, posY, 40, 300);
}
public void actionPerformed(ActionEvent event)
{
boolean db_status = false;
String btnLabel = event.getActionCommand();
if(btnLabel == "Insert")
{
String itemToInsert = tf1.getText();
if((!itemToInsert.equals("Insert "+tName+":")) && (!itemToInsert.equals("")) && (!itemToInsert.equals("-Select-")))
{
db_status = myFrame.insert(itemToInsert, tName);
if(db_status)
{
myCBox.addItem(itemToInsert);
btn_south.setText(itemToInsert +" inserted..");
}
}
else
btn_south.setText(itemToInsert +" NOT inserted, select appropriate option for "+tName+"..");
}
else if(btnLabel == "Update")
{
String newItem = tf1.getText();
if((myCBox.getSelectedIndex() != -1) && (myCBox.getSelectedIndex() != 0))
{
if((newItem != "Insert "+tName+":") && ((!newItem.equals("-Select-"))))
{
String itemToUpdate = (String)myCBox.getSelectedItem();
db_status = myFrame.update(newItem, itemToUpdate, tName);
if(db_status)
{
myCBox.removeItem(itemToUpdate);
myCBox.addItem(newItem);
btn_south.setText(itemToUpdate+" updated as "+newItem+"..");
}
else
btn_south.setText("Item NOT updated..");
}
}
else
{
btn_south.setText("CAUTION: Select an item from the List to update or insert an appropriate "+tName+"..");
}
}
else if(btnLabel == "Delete")
{
if((myCBox.getSelectedIndex() != -1) && (!myCBox.getSelectedItem().equals("-Select-")))
{
String itemToDelete = (String)myCBox.getSelectedItem();
db_status = myFrame.delete(itemToDelete, tName);
if(db_status)
{
myCBox.removeItem(itemToDelete);
btn_south.setText(itemToDelete+" deleted..");
}
else
btn_south.setText(itemToDelete +" NOT deleted..");
}
else
{
btn_south.setText("CAUTION: Select an item from the List to delete..");
}
}
}
static void addRadioButton(final String tableName, String label)
{
rbtn = new JRadioButton(label);
group.add(rbtn);
nextPanel.add(rbtn);
rbtn.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
page2 = new myFrame2(tableName);
page2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
page2.setVisible(true);
Page1frame.setVisible(false);
}
}
);
}
static void viewPage1(){
page2.setVisible(false);
Page1frame.setVisible(true);
}
static JPanel nextPanel;
static JButton btnGo = new JButton("Select the parameter by which you would like to generate TimeTable : ");
static ButtonGroup group = new ButtonGroup();
static JRadioButton rbtn;
JComboBox myCBox;
static JButton btnHead = new JButton("Welcome to TimeTable Page1");
String tName;
static JButton btn_south;
protected JPanel myInnerPanel = new JPanel();
JButton btnInsert;
JButton btnUpdate;
JButton btnDelete;
JTextField tf1;
static myFrame Page1frame;
static myFrame2 page2;
static
{
btn_south = new JButton("Welcome");
btn_south.setEnabled(false);
nextPanel = new JPanel();
//nextPanel.add(btnGo);
page1rowTypeA.addRadioButton("batch", "Batches");
page1rowTypeA.addRadioButton("room", "Rooms");
page1rowTypeA.addRadioButton("teacher", "Teachers");
btnHead.setEnabled(false);
btnGo.setEnabled(false);
}
}